Packet retransmission and memory sharing

ABSTRACT

A method and system for packet retransmission that includes transmitting or receiving, by a transceiver, a plurality of packets. Next, a determination is made for a memory allocation between a retransmission function and one or more of an interleaving and a deinterleaving function, wherein the memory allocation is based on at least one communication parameter. Then, an identification of at least one packet of the plurality of packets as a packet that should not be retransmitted is performed.

RELATED APPLICATION DATA

This application is a Continuation of U.S. patent application Ser. No.15/298,526, filed Oct. 20, 2016, now U.S. Pat. No. 10,044,473, which isa Continuation of U.S. patent application Ser. No. 14/159,125, filedJan. 20, 2014, now U.S. Pat. No. 9,485,055, which is a Continuation ofU.S. patent application Ser. No. 13/766,059, filed Feb. 13, 2013, nowU.S. Pat. No. 8,645,784, which is a Continuation of U.S. patentapplication Ser. No. 12/783,758, filed May 20, 2010, now U.S. Pat. No.8,407,546, which is a Continuation of U.S. patent application Ser. No.12/295,828, filed Oct. 2, 2008, now U.S. Pat. No. 8,335,956, which is anational stage application under 35 U.S.C. 371 of PCT Application No.PCT/US2007/066522 having an international filing date of Apr. 12, 2007,which designated the United States, which PCT application claims thebenefit of and priority under 35 U.S.C. § 119(e) to U.S. PatentApplication Nos. 60/792,236, filed Apr. 12, 2006, entitled “xDSL PacketRetransmission Mechanism,” and 60/849,650, filed Oct. 5, 2006, entitled“xDSL Packet Retransmission Mechanism with Examples,” each of which areincorporated herein by reference in their entirety.

BACKGROUND Field of the Invention

This invention generally relates to communication systems. Morespecifically, an exemplary embodiment of this invention relates toretransmission of packets in a communication environment. An exemplaryembodiment of this invention also relates to memory sharing betweentransmission functions and other transceiver functions.

SUMMARY

Exemplary aspects of the invention relate to handling of packets and theassignment of a packet handling identifier. Exemplary aspects relate tosharing of resources between retransmitted packets and other transceiverfunctions. In addition, exemplary aspects relate to sharing of resourcesbetween packets associated with the packet handling identifier and othertransceiver functions.

More specifically, aspects of the invention relate to assigning a packethandling identifier to one or more packets. Based on the packet handlingidentifier, a packet can either be, for example, forwarded directly toanother communication device (or layer) or, alternatively, held forpossible retransmission protocols. For example, packets received from,for example, a higher-layer of a communication device, can be designatedto have a specific packet handling identifier, such as a Quality ofService (QOS) level. The QOS level of a packet indicates the importanceof certain service metrics (or characteristics) of one or more packets.

Two exemplary QOS metrics are delay (or latency) and Packet Error Rate(PER). While these two metrics are used for illustrative purposesherein, it should be appreciated that other metrics can also be usedwith this invention. For example, other QOS metrics could include one ormore of a Bit Error Rate (BER), data rate, delay variation (or jitter),packet loss rate, time between error events (TBE), or the like.

As an example, in the case where the two QOS metrics are latency andPER, packets containing, for example, video information (such as IPTV)may have the requirement for a very low packet error rate but can oftentolerate higher delay. In contrast, voice or data (e.g., gaming) trafficmay have very low latency requirements but can tolerate a higher packeterror rate. For this particular example, the video packets could bedesignated as “low-PER” QOS packets and the voice or data packets couldbe designated as “low-latency” QOS packets. For example, a specific QOSidentifier could be assigned to the low-latency packets while adifferent QOS identifier could be assigned to the low-PER packets. Thelow-latency packets could be forwarded directly to another transceiver,or a higher layer, while the low-PER packets can be stored in aretransmission buffer, e.g., memory, that can be used to reduce packeterror.

As mentioned above, exemplary aspects also relate to sharing ofresources between a retransmission function and other transceiverfunctions.

The exemplary systems and methods of this invention can utilize memory,such as a retransmission buffer, for the storing of packets forretransmission functions. Since other transceiver functions may alsorequire memory to perform certain functionality, an exemplary aspect ofthis invention also relates to sharing the memory for retransmissionfunctions with the memory required for other transceiver functions. Forexample, memory can be dynamically allocated based on configurationsettings or noise conditions and, for example, the memory dividedbetween one or more of interleaving/deinterleaving, RS Coding/Decodingfunctionality and the functionality used retransmission.

Aspects of the invention thus relate to identification of one or morepackets.

Additional aspects of the invention relate to identifying one or morepackets that can be retransmitted.

Still further aspects of the invention relate to identifying one or morepackets that should not be retransmitted.

Aspects of the invention also relate to retransmission of one or more ofan IP packet, an Ethernet packet, an ATM cell, a PTM packet, an ADSLMux-data frame, a PTM-TC codeword, and RS codeword and a DMT symbols.

Still further aspects of the invention relate to appending an identifierto a packet.

Still further aspects of the invention relate to appending a sequenceidentifier to at least one packet.

Aspects of the invention also relate to routing one or more packetsbased on a packet handling identifier.

Aspects of the invention also relate to retransmitting a packet.

Aspects of the invention further relate to retransmit a packet based ona retransmission request.

Still further aspects of the invention relate to sharing memory betweena retransmission function and one or more of an interleaver,deinterleaver, coder, decoder and other transceiver functionalities.

Other more specific aspects of the invention relate to sharing memorybetween a retransmission buffer (or memory) andinterleaving/deinterleaving and/or coding/decoding functionality.

Additional exemplary, non-limiting aspects of the invention are:

1. A method of packet retransmission comprising:

transmitting or receiving a plurality of packets;

identifying at least one packet of the plurality of packets as a packetthat should not be retransmitted.

2. The method of aspect 1, wherein the packet is any grouping of bytes.

3. The method of aspect 1, wherein the packet is one of an IP packet, anEthernet packet, an ATM cell, a PTM packet, an ADSL Mux-Data Frame, aPTM-TC codeword, an RS codeword and a DMT symbol.

4. The method of aspect 1, wherein a bit field comprising a sequenceidentifier (SID) is appended to each packet.

5. The method of aspect 4, wherein the identifying step comprises usinga special value for a sequence identifier (SID).

6. The method of aspect 4, wherein the appended bit field comprises adedicated CRC.

7. The method of aspect 1, wherein the at least one packet is not storedfor retransmission.

8. The method of aspect 1, wherein the at least one packet is passedimmediately to a high layer.

9. A packet retransmission module capable of transmitting or receiving aplurality of packets and capable of identifying at least one packet ofthe plurality of packets as a packet that should not be retransmitted.

10. The module of aspect 9, wherein the packet is any grouping of bytes.

11. The module of aspect 9, wherein the packet is one of an IP packet,an Ethernet packet, an ATM cell, a PTM packet, an ADSL Mux-Data Frame, aPTM-TC codeword, an RS codeword and a DMT symbol.

12. The module of aspect 9, wherein the module is capable of appending abit field comprising a sequence identifier (SID) to each packet.

13. The module of aspect 12, wherein the identifying comprises using aspecial value for the SID.

14. The module of aspect 12, wherein the appended bit field comprises adedicated CRC.

15. The module of aspect 9, wherein the at least one packet is notstored by the module for retransmission.

16. The module of aspect 9, wherein the at least one packet is passed bythe module immediately to a high layer.

17. The module of aspect 9, wherein the module is implemented in one ormore of a wireless transceiver, a wireless LAN station, a wiredtransceiver, a DSL modem, an ADSL modem, an xDSL modem, a VDSL modem, amulticarrier transceiver, a general purpose computer, a special purposecomputer, a programmed microprocessor, a microcontroller and peripheralintegrated circuit element(s), an ASIC, a digital signal processor, ahard-wired electronic or logic circuit and a programmable logic device.

18. The module of aspect 9, wherein the module is implemented in one ormore of a PTM-TC, ATM-TC, PMD and PMS-TC.

19. A method comprising sharing memory between an interleaving and/ordeinterleaving memory and a packet retransmission memory.

20. A method comprising allocating a first portion of shared memory forretransmission and a second portion of the shared memory forinterleaving and/or deinterleaving.

21. The method of aspect 20, further comprising transmitting orreceiving a message indicating how to allocate the shared memory.

22. The method of aspect 19 or 20, further comprising transmitting orreceiving a message indicating how to share the memory.

23. A memory capable of being shared between an interleaving and/ordeinterleaving buffer and a packet retransmission buffer.

24. A module capable of allocating a first portion of shared memory forretransmission and a second portion of the shared memory forinterleaving and/or deinterleaving.

25. The module of aspect 24, wherein the module is capable oftransmitting or receiving a message indicating how to allocate theshared memory.

26. The module of aspect 24, wherein the module is capable oftransmitting or receiving a message indicating how to share the memory.

27. The module of aspect 24, wherein the module is one or more of awireless transceiver, a wireless LAN station, a wired transceiver, a DSLmodem, an ADSL modem, an xDSL modem, a VDSL modem, a multicarriertransceiver, a general purpose computer, a special purpose computer, aprogrammed microprocessor, a microcontroller and peripheral integratedcircuit element(s), an ASIC, a digital signal processor, a hard-wiredelectronic or logic circuit and a programmable logic device.

28. A method of packet retransmission comprising:

transmitting or receiving a plurality of packets;

identifying at least one packet of the plurality of packets as a packetthat should be retransmitted and at least one packet of the plurality ofpackets as a packet that should not be retransmitted.

29. The method of aspect 28, wherein the packet is any grouping ofbytes.

30. The method of aspect 28, wherein the packet is one of an IP packet,an Ethernet packet, an ATM cell, a PTM packet, an ADSL Mux-Data Frame, aPTM-TC codeword, an RS codeword and a DMT symbol.

31. The method of aspect 28, wherein a bit field comprising a sequenceidentifier (SID) is appended to each packet.

32. The method of aspect 31, wherein the identifying step comprisesusing a special value for a sequence identifier (SID).

33. The method of aspect 31, wherein the appended bit field comprises adedicated CRC.

34. The method of aspect 28, wherein at least one packet is stored forretransmission.

35. The method of aspect 28, wherein at least one packet is passedimmediately to a high layer.

36. A packet handling method comprising:

-   -   receiving a stream of packets;    -   identifying a first number of packets in the stream of packets        as low-latency packets;    -   identifying a second number of packets in the stream of packets        as low-error packets;    -   forwarding the low-latency and low-error packets to a        transceiver or a higher layer; and    -   storing the low-error packets for error correction.

37. The method of aspect 36, further comprising appending the low-errorpackets with an identifier.

38. A method of allocating memory in a transceiver comprising:

-   -   analyzing one or more communication parameters;    -   identifying a memory allocation; and    -   allocating memory based on the memory allocation to a        retransmission function and one or more of interleaving,        deinterleaving, RS coding and RS decoding.

39. A memory sharing method in a transceiver comprising:

-   -   receiving a memory allocation;    -   establishing a shared memory for one or more of interleaving,        deinterleaving, RS coding, RS decoding and packet retransmission        functions; and    -   sharing the shared memory between a retransmission function and        one or more of interleaving, deinterleaving, RS coding and RS        decoding functions.

40. The method of aspect 39, further comprising determining acompatibility of the memory allocation.

41. The method of aspect 39, wherein the compatibility of the memoryallocation is based on channel performance metrics.

42. Means for performing the functionality of any of the aforementionedaspects.

43. An information storage media comprising information that whenexecuted performs the functionality of any of the aforementionedaspects.

44. Any one or more of the features as substantially described herein.

45. Means for packet retransmission comprising:

-   -   means for transmitting or receiving a plurality of packets;    -   means for identifying at least one packet of the plurality of        packets as a packet that should not be retransmitted.

46. The means of aspect 45, wherein the packet is any grouping of bytes.

47. The means of aspect 45, wherein the packet is one of an IP packet,an Ethernet packet, an ATM cell, a PTM packet, an ADSL Mux-Data Frame, aPTM-TC codeword, an RS codeword and a DMT symbol.

48. The means of aspect 45, wherein a bit field comprising a sequenceidentifier (SID) is appended to each packet.

49. The means of aspect 48, wherein the means for identifying comprisesusing a special value for a sequence identifier (SID).

50. The means of aspect 48, wherein the appended bit field comprises adedicated CRC.

51. The means of aspect 45, wherein the at least one packet is notstored for retransmission.

52. The means of aspect 45, wherein the at least one packet is passedimmediately to a high layer.

53. Means for sharing memory between an interleaving and/ordeinterleaving function and a packet retransmission function.

54. Means for allocating a first portion of shared memory forretransmission and a second portion of the shared memory forinterleaving and/or deinterleaving.

55. The means of aspect 54, further comprising means for transmitting orreceiving a message indicating how to allocate the shared memory.

56. The means of aspect 54, further comprising means for transmitting orreceiving a message indicating how to share the memory.

57. Means for sharing a memory between an interleaving and/ordeinterleaving function and a packet retransmission function.

58. Means for packet retransmission comprising:

-   -   means for transmitting or receiving a plurality of packets;    -   means for identifying at least one packet of the plurality of        packets as a packet that should be retransmitted and at least        one packet of the plurality of packets as a packet that should        not be retransmitted.

59. The means of aspect 58, wherein the packet is any grouping of bytes.

60. The means of aspect 58, wherein the packet is one of an IP packet,an Ethernet packet, an ATM cell, a PTM packet, an ADSL Mux-Data Frame, aPTM-TC codeword, an RS codeword and a DMT symbol.

61. The means of aspect 58, wherein a bit field comprising a sequenceidentifier (SID) is appended to each packet.

62. The means of aspect 61, wherein the means for identifying comprisesusing a special value for the sequence identifier (SID).

63. The means of aspect 58, wherein the appended bit field comprises adedicated CRC.

64. The means of aspect 58, wherein at least one packet is stored forretransmission.

65. The means of aspect 58, wherein at least one packet is passedimmediately to a high layer.

66. A packet handling means comprising:

-   -   means for receiving a stream of packets;    -   means for identifying a first number of packets in the stream of        packets as low-latency packets;    -   means for identifying a second number of packets in the stream        of packets as low-error packets;    -   means for forwarding the low-latency and low-error packets to a        transceiver or higher layer; and    -   means for storing the low-error packets for error correction.

67. The means of aspect 66, further comprising means for appending thelow-error packets with an identifier.

68. Means for allocating memory in a transceiver comprising:

-   -   means for analyzing one or more communication parameters;    -   means for identifying a memory allocation; and    -   means for allocating memory based on the memory allocation to a        retransmission function and one or more of an interleaving,        deinterleaving, RS coding and RS decoding function.

69. Means for memory sharing in a transceiver comprising:

-   -   means for receiving a memory allocation;    -   means for establishing a shared memory for one or more of        interleaving, deinterleaving, RS coding, RS decoding and packet        retransmission function; and    -   means for sharing the shared memory between a retransmission        function and one or more of interleaving, deinterleaving, RS        coding and RS decoding functionality.

70. The means of aspect 69, further comprising means for determining acompatibility of the memory allocation.

71. The means of aspect 69, wherein the compatibility of the memoryallocation is based on channel performance metrics.

72. A transceiver capable of performing packet retransmissioncomprising:

-   -   a transmission management module configurable to transmit or        receive a plurality of packets; and    -   a QOS module configurable to identify at least one packet of the        plurality of packets as a packet that should not be        retransmitted.

73. The transceiver of aspect 72, wherein the packet is any grouping ofbytes.

74. The transceiver of aspect 72, wherein the packet is one of an IPpacket, an Ethernet packet, an ATM cell, a PTM packet, an ADSL Mux-DataFrame, a PTM-TC codeword, an RS codeword and a DMT symbol.

75. The transceiver of aspect 72, wherein a bit field comprising asequence identifier (SID) is appended to each packet.

76. The transceiver of aspect 75, wherein the QOS module uses a specialvalue for a sequence identifier (SID).

77. The transceiver of aspect 75, wherein the appended bit fieldcomprises a dedicated CRC.

78. The transceiver of aspect 72, wherein the at least one packet is notstored for retransmission.

79. The transceiver of aspect 72, wherein the at least one packet ispassed immediately to a high layer.

80. A memory capable of being shared between interleaving and/ordeinterleaving and packet retransmission.

81. A memory management module capable of allocating a first portion ofshared memory for retransmission and capable of allocating a secondportion of the shared memory to one or more of interleaving anddeinterleaving functionality.

82. The module of aspect 81, further comprising a module fortransmitting or receiving a message indicating how to allocate theshared memory.

83. The module of aspect 81, further comprising a module fortransmitting or receiving a message indicating how to share the memory.

84. A module capable of being shared between interleaving and/ordeinterleaving and packet retransmission.

85. A transceiver capable of performing packet retransmissioncomprising:

-   -   a transmission management module configurable to transmit or        receive a plurality of packets; and    -   a QOS module configurable to identify at least one packet of the        plurality of packets as a packet that should be retransmitted        and at least one packet of the plurality of packets as a packet        that should not be retransmitted.

86. The transceiver of aspect 85, wherein the packet is any grouping ofbytes.

87. The transceiver of aspect 85, wherein the packet is one of an IPpacket, an Ethernet packet, an ATM cell, a PTM packet, an ADSL Mux-DataFrame, a PTM-TC codeword, an RS codeword and a DMT symbol.

88. The transceiver of aspect 85, wherein a bit field comprising asequence identifier (SID) is appended to each packet.

89. The transceiver of aspect 88, wherein the identifying step comprisesusing a special value for a sequence identifier (SID).

90. The transceiver of aspect 88, wherein the appended bit fieldcomprises a dedicated CRC.

91. The transceiver of aspect 85, wherein at least one packet is storedfor retransmission.

92. The transceiver of aspect 85, wherein at least one packet is passedimmediately to a high layer.

93. A transceiver capable of handling a stream of packets comprising:

-   -   a QOS module capable of identifying a first number of packets in        the stream of packets as low-latency packets and a second number        of packets in the stream of packets as low-error packets;    -   a transmission management module capable of forwarding the        low-latency and low-error packets to another transceiver; and    -   a buffer module capable of storing the low-error packets for        error correction.

94. The transceiver of aspect 93, further comprising a packet QOSassignment module capable of appending the low-error packets with anidentifier.

95. A transceiver capable of having an allocatable memory comprising:

-   -   a controller capable of analyzing one or more communication        parameters; and    -   a memory management module capable of identifying a memory        allocation and allocating a shared memory based on the memory        allocation to a retransmission function and one or more of        interleaving, deinterleaving, RS coding and RS decoding        functions.

96. A transceiver capable of sharing memory comprising:

-   -   a controller capable of receiving a memory allocation; and    -   a memory management module capable of establishing a shared        memory for a retransmission function and one or more of        interleaving, deinterleaving, RS coding and RS decoding        functions.

97. The transceiver aspect 96, wherein the memory management modulefurther determines a compatibility of the memory allocation.

98. The transceiver of aspect 96, wherein the memory allocation is basedon one or more communication channel performance metrics.

99. In a communication environment where packets are being transmitted,a method for allocating a first portion of shared memory forretransmission of packets and a second portion of the shared memory forinterleaving and/or deinterleaving.

100. The method of aspect 99, wherein all errored packets areretransmitted.

101. The method of aspects 19, 20 and 99, wherein a retransmissionfunction identifies packets that should not be retransmitted.

102. The method of aspect 99, wherein all packets are being transmittedwithout an assigned a QOS level.

103. A packet communication method comprising:

-   -   in a first mode of operation:        -   transmitting or receiving a plurality of packets;        -   identifying at least one packet of the plurality of packets            as a packet that should not be retransmitted;    -   in a second mode of operation:        -   transmitting or receiving a plurality of packets;        -   allocating a first portion of shared memory for            retransmission of packets and a second portion of the shared            memory for one or more of interleaving, deinterleaving,            coding, decoding and error correction; and    -   in a third mode of operation:        -   transmitting or receiving a plurality of packets;        -   identifying at least one packet of the plurality of packets            as a retransmittable-type packet;        -   identifying at least one packet of the plurality of packets            as a non-retransmittable-type packet;        -   allocating a first portion of shared memory for            retransmission of the retransmittable-type packets and a            second portion of the shared memory for one or more of            interleaving, deinterleaving, coding, decoding and error            correction.

104. The method of aspect 103, wherein the retransmittable-type packetis a low-latency packet.

105. The method of aspect 103, wherein the retransmittable-type packetis a low-error packet.

These and other features and advantages of this invention are describedin, or are apparent from, the following detailed description of theexemplary embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The exemplary embodiments of the invention will be described in detail,with reference to the following figures wherein:

FIG. 1 illustrates an exemplary communication system according thisinvention.

FIG. 2 is a flowchart outlining an exemplary method for packetretransmission according this invention.

FIG. 3 is a flowchart outlining an exemplary method for retransmittedpacket reception according this invention.

FIG. 4 is a flowchart outlining an exemplary method for memoryallocation according to this invention.

FIG. 5 is a flowchart outlining an exemplary method for memory sharingaccording this invention.

DETAILED DESCRIPTION

The exemplary embodiments of this invention will be described inrelation to packet retransmission and/or memory sharing in an xDSLenvironment. However, it should be appreciated, that in general, thesystems and methods of this invention will work equally well for anytype of communication system in any environment.

The exemplary systems and methods of this invention will also bedescribed in relation to multicarrier modems, such as xDSL modems andVDSL modems, and associated communication hardware, software andcommunication channels. However, to avoid unnecessarily obscuring thepresent invention, the following description omits well-known structuresand devices that may be shown in block diagram form or otherwisesummarized.

For purposes of explanation, numerous details are set forth in order toprovide a thorough understanding of the present invention. It should beappreciated however that the present invention may be practiced in avariety of ways beyond the specific details set forth herein.

Furthermore, while the exemplary embodiments illustrated herein show thevarious components of the system collocated, it is to be appreciatedthat the various components of the system can be located at distantportions of a distributed network, such as a communications networkand/or the Internet, or within a dedicated secure, unsecured and/orencrypted system. Thus, it should be appreciated that the components ofthe system can be combined into one or more devices, such as a modem, orcollocated on a particular node of a distributed network, such as atelecommunications network. As will be appreciated from the followingdescription, and for reasons of computational efficiency, the componentsof the system can be arranged at any location within a distributednetwork without affecting the operation of the system. For example, thevarious components can be located in a Central Office modem (CO, ATU-C,VTU-O), a Customer Premises modem (CPE, ATU-R, VTU-R), an xDSLmanagement device, or some combination thereof. Similarly, one or morefunctional portions of the system could be distributed between a modemand an associated computing device.

Furthermore, it should be appreciated that the various links, includingcommunications channel 10, connecting the elements (not shown) can bewired or wireless links, or any combination thereof, or any other knownor later developed element(s) that is capable of supplying and/orcommunicating data to and from the connected elements. The term moduleas used herein can refer to any known or later developed hardware,software, firmware, or combination thereof that is capable of performingthe functionality associated with that element. The terms determine,calculate and compute, and variations thereof, as used herein are usedinterchangeably and include any type of methodology, process,mathematical operation or technique. Transmitting modem and Transmittingtransceiver as well as Receiving modem and Receiving transceiver areused interchangeably herein.

Moreover, while some of the exemplary embodiments described herein aredirected toward a transmitter portion of a transceiver performinginterleaving and/or coding on transmitted information, it should beappreciated that a corresponding deinterleaving and/or decoding isperformed by a receiving portion of a transceiver. Thus, while perhapsnot specifically illustrated in every example, this disclosure isintended to include this corresponding functionality in both the sametransceiver and/or another transceiver.

Communication system 100 comprises a portion of a transceiver 200 and aportion of a transceiver 300. The transceiver 200, in addition to wellknown componentry, comprises an errored packet module 210, atransmission management module 220, a QOS ID module 225, a QOS module230, a packet QOS assignment module 240, a retransmissionbuffer/interleaving/deinterleaving/RS coding/RS Decoding memory 250, acounter module 260, a memory management module 270 and acontroller/memory 280.

Connected via communication channel 10 to transceiver 200 is transceiver300. The transceiver 300, in addition to well known componentry,comprises an errored packet module 310, a transmission management module320, a QOS ID module 325, a QOS module 330, a packet QOS assignmentmodule 340, a retransmission buffer/interleaving/deinterleaving/RScoding/RS Decoding memory 350, a counter module 360, a memory managementmodule 370 and a controller/memory 380.

As discussed above, the systems, methods and protocols discussed hereinwill be described in relation to xDSL systems, such as those specifiedin ADSL2 ITU-T G.992.3, ADSL2+ ITU G.992.5, and VDSL2 ITU G.993.2, whichare incorporated herein by reference in their entirety.

In operation, a first aspect of the invention relates to retransmissionof one or more packets, the retransmission identifier being implementedat any transmission layer where packet boundaries are defined. Forexample, it can be implemented in the Packet Transmission Mode TC(PTM-TC) of xDSL systems. For reference, “Annex A” which is of record inthe identified provisional filing and incorporated by reference hereincontains the PTM-TC of ADSL2 and VDSL2 systems as specified in the ITU-TG.992.3 ADSL2 standard.

As discussed herein, the invention will generally be described inrelation to the retransmission mechanism being incorporated as part ofthe PTM-TC however, it should be appreciated that it can also beimplemented inside other layer(s) of a communication device, such as anxDSL transceiver, such as within the PMD or PMS-TC.

The retransmission techniques disclosed herein can also be performed ata layer above the PTM-TC, for example, in a new layer between the PTM-TCand the next higher layer, or at any layer above the physical layer,e.g., layers 2, 3, 4, 5, etc.

Additionally, while “packet” is used herein, the term “packet” includesany basic data unit, i.e., a grouping of bytes. For example, a packetcould be an IP packet, an Ethernet packet, an ATM cell, a PTM packet, anADSL Mux-Data frame, a PTM-TC codeword, an RS Codeword, a DMT symbol,or, in general, any grouping of data bytes or information. A packetcould also be a combination of one or more of the above. For example, apacket could be constructed by concatenating any number of ATM cells tocreate a larger grouping of bits. For example, five 53-byte ATM cellscould be combined into a 265 byte packet or four 65 PTM-TC codewordscould be combined into a 260 byte packet. A packet could also be basedon dividing any of the above groupings of bytes. For example, larger IPor Ethernet packets could be divided into smaller groups of bytes to beused as a “packet” with the retransmission functionality describedherein. For example, a 1500 byte IP packet could be divided into three500 byte packets and used by the retransmission protocol. If theretransmission function is implemented as part of the PTM-TC, packetsare received from a higher-layer in the xDSL transmitter PTM-TC and sentvia the xDSL transmitter PMS-TC and PMD over the communication channelto the xDSL receiver. The xDSL receiver PMD and PMS-TC process thereceived signal and pass the results to the PTM-TC, which processes theinformation and passes the received packet up to a higher layer(s).

Packets received from the higher layer at the xDSL transmitter PTM-TCcan be designated to have a QOS level. The QOS level of a packet canindicate the importance of certain service metrics (or characteristics)of this (or more) packet(s). Two exemplary QOS metrics are delay (orlatency) and PER. Although, as discussed above, these twocharacteristics are the focus of the invention, any number of differentQOS metrics could also be used.

As an example, in the case where the 2 QOS metrics are latency and PER,a first set of packets carrying certain information may have arequirement for very low PER but may be able to tolerate higher delay.Other packets containing information such as voice or data traffic mayhave very low delay requirements but can tolerate a higher PER.According to an exemplary embodiment of this invention, the first set ofpackets would be designated as “low-PER” QOS packets whereas voice ordata packets would be designated at “low-latency” QOS packets. The QOSlevel (or metric) of a packet could be designated in a number of ways.For example:

i) Certain bit fields in the header of data portions of each packetcould contain certain values that specify the QOS requirements a packet.For example, the packet header could contain bit fields that indicate ifthe packet has a “low-PER” QOS requirement or a “low-latency” QOSrequirement. These fields could be read by the transmitting modem and/orreceiving modem to determine the QOS level of each packet.

ii) When sending packets from higher layer to the PTM-TC, the higherlayer could indicate on a packet by packet basis the QOS requirements ofeach packet. For example, there could be a separate signal on theinterface that indicates if a packet being transferred has a “low-PER”QOS requirement or a “low-latency” QOS requirement.

iii) When sending packets from higher layer to the PTM-TC, there couldbe a separate interface (or channel) for packets with different QOSrequirements. For example, one channel could be used to transfer packetsthat have a “low-PER” QOS requirement and a second channel could used totransfer packets that have a “low-latency” QOS requirement. This generalconcept could also be scaled to accommodate a plurality of different QOSrequirements and a plurality of channels.

iv) As in the case of Pre-Emption in the PTM-TC (see Annex A), twologically separated γ-interfaces could be used for the transport of alow-PER and low-latency packet flow through a single bearer channel.This general idea could then be scaled to support any number of packettypes.

Other mechanisms can also be used to designate the QOS level of apacket—provided the transmitter and/or receiver retransmission protocolis capable of knowing the QOS level for one or more packets.

Once the QOS level is known by the PTM-TCs, an efficient packetretransmission can be designed. The exemplary packet retransmissionmethods and protocols can be designed to include any one or more of thefollowing system level characteristics:

-   -   All packets are received from the higher layer and passed to the        higher layers in the correct order.    -   “Low-latency” QOS packets will not incur any extra delay due to        retransmission.    -   Only packets with “low-PER” QOS should be retransmitted, and        therefore only low-PER packets will incur the extra delay due to        the retransmission mechanism.    -   Flow control can be minimized such that the transmitter can        generally accept all packets from the higher layer at the        required data rate without holding-off (or “blocking”) packets        from the higher layer during the retransmission process.    -   Packet delay-variation/jitter can be minimal.    -   A “DRR-like” functionality in a single bearer without requiring        latency/interleaver OLR.

The transceiver 200, in cooperation with the QOS module 230, receivespackets from a higher-layer. In cooperation with the packet QOSassignment module 240, a packet Sequence ID (SID) is appended to thereceived packets. The packets, in cooperation with the transmissionmanagement module 220, can then be transmitted in the order in whichthey were received.

The QOS Module 230, if not already performed by a high layer, alsoidentifies packets based on the QOS requirement of the packet(s). Then,in cooperation with the packet QOS assignment module 240, a QOSidentifier is associated with the packet as discussed hereinafter.

If, for example, the packet is identified as a low-PER packet, andassigned such an identifier by the QOS module 230, when the transmissionmanagement module 220 receives the packet, the packet is identified bythe QOS ID module 225 as being a low-PER packet and the packet isforwarded for storage in the retransmission buffer 250. Alternatively,if the packet has been labeled as a low-latency packet, and identifiedas such by the by the QOS ID module 225, the packet can be transmittedto the receiving modem in cooperation with the transmission managementmodule 220.

The low-PER packets can be stored for a sufficient amount of time towait for a retransmission message from the receiver PTM-TC. During thistime, the transmitting modem can continue to receive packets from one ormore higher layers, label these packets, if needed, and store thesepackets, if they are identified as low-PER packets, in the same way. Theresulting minimum storage requirements for the transmitter PTM-TC areestimated below.

For successful retransmission, the receiving modem should be able toinform the transmitting modem which packet, or packets, need to beretransmitted. One exemplary way of performing this is by transmittingpackets with an appended bit field that contains a counter indicatingthe place of each packet in a stream of packets. This counter value isalso known as a Sequence ID (SID). For example, a bit field containing a16-bit counter could be appended to each packet and the counter module260 would be incremented by one after each packet was transmitted. Incooperation with the packet assignment module 240, a packet counterfield could be appended to the packet in a number of places, forexample, at the beginning or end of the packet, or at the beginning orend of the packet header.

Packets received from a higher-layer may already have information in aheader or data field of the packet that contains the packet count, orsequence, information. In addition, the packet counter field may beappended with an additional CRC field that contains a cyclic redundancycheck that is computed on the packet counter field bits only. This CRCcan be used by the receiver to determine if the packet counter field isreceived correctly, i.e., without bit errors. This CRC can be inaddition to the standard CRC inserted by the standard PTM-TC (thestandard packet PTM-TC CRC is a CRC that covers all bits in a packet).The standard packet CRC may also cover the new packet counter field inits CRC as well. This helps if the receiving modem uses the presence orabsence of the packet counter field in a packet to detect if the packethas a low-PER or low-latency requirement (discussed below).

Alternatively, or in addition, the packet counter field (with or withouta dedicated CRC) can be appended only to the packets with a specific QOSrequirement, whereas all other packets can be transmitted withoutmodification. For example, all video packets with low-PER QOS couldcontain the appended packet counter field whereas all the voice/datalow-latency packets could be transmitted unchanged. One exemplarybenefit of this is that the overhead (rate loss) due to adding thepacket counter field is incurred only when transmitting low-PER packets.

Alternatively, or in addition, all low-PER and low-latency packets canbe transmitted with the low packet counter field (with or without adedicated CRC). In this case, the packet counter field of thelow-latency packets may contain a special value indicating that a packetis not a low-PER packet. Also, the packet counter field of thelow-latency packet may not even contain a count value, since thelow-latency packets are not intended to be retransmitted. In this case,the packet counter field could contain a counter value only for low-PERpackets and the counter value would only be incremented when a low-PERpacket was transmitted. As an example, if the packet counter field is 16bits, the special value of all zeros could be used to indicate that apacket is a low-latency packet. In this case, low-PER packets couldcontain counter values from one up to 2¹⁶−1, but not including allzeros, since this special zero value can be used to indicate alow-latency packet.

The receiving modem, e.g., receiver PTM-TC, which in this case isillustrated as the transceiver 300 and includes comparable functionalityto that described in relation to transceiver 200, receives packets fromthe transmitting modem via the PMS-TC. If the received packet isidentified as a low-latency packet by the QOS ID module 325, the packetis passed to a higher-layer. If a received packet is identified by theQOS ID module 325 as a low-PER packet, the packet is forwarded, with thecooperation of the transmission management module 320, to theretransmission buffer 350 for a minimum amount of time before passing toa higher-layer.

The storage time in the retransmission buffer 350 helps ensure that theretransmission protocol provides a constant delay, e.g., no delayvariation seen by the upper layers. This way, if a packet needs to beretransmitted, the receiving modem can continue to provide packets tothe higher-layers at a constant rate while waiting for the retransmittedpacket(s) to arrive from the transmitting modem. The resulting minimummemory (or storage) requirements for the receiving PTM-TC are estimatedbelow.

Alternatively, low-PER packets without errors may not be stored for aminimum amount of time before passing to a higher-layer. The error-freelow-PER packets can be passed to the higher-layer immediately just likethe low-latency packets. However, when a low-PER packet is in error, itis stored along with all of the following low-PER packets before passingto a higher-layer in order to wait for the retransmitted packet(s) toarrive. This will cause a delay variation on the low-PER packetswhenever a retransmission occurs. However, this delay variation wouldnot apply to the low-latency packets.

The QOS ID module 325 can detect that a packet is either low-PER orlow-latency using several different methods. For example, if all low-PERand low-latency packets contain the appended packet counter field, thenthe receiving modem, in cooperation with the counter module 360, detectsa low-latency packet when a packet counter field contains the designatedspecial value, which was inserted by the transmitting modem, indicatingthe packet is a low-latency packet.

Alternatively, or in addition, the receiver could detect a low-PERpacket when the packet counter field contains a valid packet countervalue. Additionally, if a dedicated CRC is appended to the packetcounter field, the CRC could be used to detect if the packet counterfield bits are in error.

If the packet counter field, including the CRC, is only appended tolow-PER packets, the absence or presence of this field in a packet canbe used by the receiving modem, and in particular the QOS ID module, todetect a low-delay packet. For example, the receiving modem can examinethe position in the packet where the packet counter field would be, ifit was a low-PER packet, and if the packet counter field CRC fails whilethe standard whole packet CRC is correct, the receiving modem coulddetermine that the packet is a low-delay packet, since it does notcontain the packet counter field. Likewise, for example, the receivingmodem can examine the position in the packet were the packet counterfield would be, if it was a low-PER packet, and if the packet counterfield CRC is correct, the receiving modem would determine that thepacket is a low-PER packet, regardless of the status of the standardwhole packet CRC.

The receiving modem, in cooperation with the retransmission buffer 350,and the errored packet module 310, can be used to detect missing orerrored packets in a number of exemplary ways. For example, the erroredpacket module 310 can detect bit errors in the packet using thestandard/whole packet PTM-TC CRC. Alternatively, or in addition, theerrored packet module 310 can detect bit errors in the packet counterfield if the transmitting modem appended a dedicated CRC to the packetcounter field. This CRC is valuable because it can be used by theerrored packet module in the receiving modem to determine if a packethas the correct packet number, even if the standard whole packet CRChappens to be in error.

Alternatively, or in addition, the errored packet module 310, can detectan errored or missing packet by receiving a packet with a correct CRC,either in the standard or packet counter field, which contains a packetcounter number that is not the expected packet counter number. Forexample, if the errored packet module 310, in cooperation with thecounter module 360, detects the receipt of a packet with a counternumber equal to 5, wherein the errored packet module 310 is expecting toreceive a packet with a counter equal to 3, the errored packet module310 can determine that two packets, namely packets numbered 3 and 4,were lost due to errors.

Once a packet(s) is found to be in error, there are several exemplaryways in which a receiving modem can communicate information to thetransmitting modem indicating that a retransmission of one or morepackets is required. For example, the receiving modem, in cooperationwith the errored packet module 310, can send an acknowledgment (ACK)message to the transmitting modem for every correctly received messageor every predetermined number of packets. As long as the transmittingmodem, and in particular the errored packet module 210, receivesmessages acknowledging receipt of packets in sequential order, there isno need for retransmission of information to the receiving modem.However, if the transmitting modem, and in particular the errored packetmodule 210, receives a message from the receiving modem, and inparticular the errored packet module 310, indicating that a packet wascorrectly received with a counter value that is out of order, aretransmission by the transmitting modem is required. In the aboveexample, where the receiving modem received a packet with a countervalue equal to 5, without receiving packets numbered 3 and 4, thetransmitting modem could receive an ACK for the packet with countervalue of 2 and then an ACK for the packet with a counter value of 5. Thetransmitting modem would then determine that it was necessary toretransmit packets with counter values of 3 and 4 since they were notreceived.

Alternatively, or in addition, a timeout value could be specified forthe transmitting modem. This timeout value could correspond to theamount of time that the transmitting modem should wait for an ACK forparticular packet before retransmitting the packet. The timeout valuecould be set to be at least as long as the round-trip delay required forthe transmitting modem to send a packet to the receiving modem and forthe receiving modem to send an ACK back to the transmitting modem. If anACK is not received by the timeout value, the transmitting modem couldretransmit the packet.

Alternatively, or in addition, a negative acknowledgment (NAK) could besent to the transmitting modem when a packet is detected as errored ormissing. In the above example, when the receiving modem received thepacket with a counter value of 5, while expecting a counter value of 3,the receiving modem could send a NAK message to the transmitting modemindicating that packets with counter values of 3 and 4 were notcorrectly received and needed to be retransmitted.

Alternatively, or in addition, if a packet was received with a correctpacket counter CRC and a valid packet counter value a and an incorrectstandard whole packet CRC, the receiving modem could send a NAK messageto the transmitting modem indicating that a packet with a value of a wasincorrectly received and needed to be retransmitted.

Assuming that errored packets are infrequent, any methodology that sendsan ACK for each correctly received packet can require a larger amount ofdata rate in the message channel that communicates this information backto the transmitting modem. In this case, sending only NAKs has thebenefit that it requires sending a message only when an errored ormissing packet is detected. Depending on the data rate capabilities ofthe message channel, and the PER, a retransmission system may use onlyACKs, only NAKs, or both ACKs and NAKs at the same time.

The ACK and NAK messages sent back to the transmitting modem can betransmitted over the same physical channel i.e., phone line, in theopposite direction as the received packets. Since the channel has alimited data rate and is not necessarily error-free, it is important tomake sure that these messages are as robust as possible and consume theleast amount of data rate. Additionally, since the transmit and receiveretransmission memory requirements depend on the round-trip latency ofthe connection, is important to minimize latency requirements for themessage channel. There are several ways these requirements can beaddressed.

The messages can be sent over a separate “low-latency” or “fast” pathbetween the xDSL transceivers. This fast path could include little oreven no delay due to interleaving and can be specified to have a latencythat is less than 2 ms.

Alternatively, or in addition, the messages can be sent with increasingrobustness by repeating transmission of each message a number of times.For example, the message could be repeated x times in order to make surethat even if x−1 messages were corrupted by the channel, at least onemessage would be received correctly.

Alternatively, or in addition, the messages can be sent such that eachmessage is repeated a number of times and each repeated message is sentin a different DMT symbol. For example, the message can be repeated xtimes and each message sent in one of x DMT symbols. This way, even ifx−1 DMT symbols were corrupted by the channel, at least one messagewould be received correctly.

Alternatively, or in addition, the messages can be sent such that eachmessage is repeated a number of times and each repeated message is sentin different DMT symbols. For example, the message could be repeated xtimes and each message sent in one of x DMT symbols. This way, even ifx−1 DMT symbols were corrupted by the channel, at least one messagewould be received correctly.

Alternatively, or in addition, the messages can be sent such that eachmessage is repeated a number of times and each repeated message is senta plurality of times in each DMT symbol. For example, the message couldbe repeated x times and each repeated message sent y times in one of xDMT symbols. This way, even if x−1 DMT symbols were corrupted by thechannel and/or large portions of a DMT symbol were corrupted by achannel, the least one message would be received correctly.

Alternatively, or in addition, the messages can include multiple packetcount values in order to reduce the data rate requirements. For example,if packets with counter values of 3-9 are correctly (or incorrectly)received an ACK (or NAK) message would be sent to indicate these packetvalues. For example, the message could contain the values 3 and 9 andthe receiver of the message would automatically know that allintermediate values (4, 5, 6, 7, 8) are also been indicated in themessage.

Alternatively, or in addition, the DMT sub-carriers that modulate thesemessages could operate with a much higher SNR margin e.g., 15 dB, ascompared to the normal 6 dB margin of xDSL systems. This way, themessages would have a higher immunity to channel noise.

Alternatively, or in addition, a receiving modem may need to send anadditional ACK or NAK message after already in the process of sending arepeated message. For example, a receiving modem may detect that packetswith values 3 to 9 have been correctly received and send an ACK messageback to the transmitting modem indicating this information. This messagecan be repeated x times with each repeated message being transmitted (atleast once) on different DMT symbols. While sending the second repeatedmessage on the second DMT symbol, the receiver could detect that packetswith values 10 to 17 have now also been correctly received. In thiscase, the receiving modem could just append this information to theprevious message or, alternatively, send a new separate message that isrepeated as well x times with each repeated message being transmitted(at least once) on a different DMT symbol.

Alternatively, or in addition, when repeating a message x times on x DMTsymbols, each repeated message can be modulated on a different set ofDMT sub-carriers on each DMT symbol. This way, if one or moresub-carriers have a low SNR, the message will still be correctlyreceived.

For low-PER packets, the delay due to this retransmission protocol isequal to the delay that results from storing these packets at thereceiving modem (RX PTM-TC) to pass in the packets to a higher layer.Low-latency packets do not incur extra delay.

The transmitting modem must store a packet for retransmission for a timeequal to the round trip delay from when the packet is sent to when theretransmission message is received. During this time the transmittingmodem continues to receive packets from the higher layer and continuesto store these packets in the same way. Therefore the storagerequirements in octets can be computed as:Minimum TX memory (octets)=roundtripdelay*datarate,where the roundtripdelay is the time equal to the round trip delay fromwhen the packet is sent to when the retransmission message is received,and the datarate is the data rate of the connection that is transferringthe packets.For ITU-T G.993.2 VDSL2, which is incorporated herein by reference, thiscan be computed using the VDSL2 profile parameters as:Minimum TX memory (octets)=(DS+US Interleaving Delay in octets)+(US+DSalpha/beta delay without interleaving)*(Bidirectional Net data rate)=MAXDLEYOCTET+(4 ms)*MBDC,where MAX DELAYOCTET and MBDC are as specified in the VDSL2 profiles.

For the receiver, the minimum receiver storage requirements can bedetermined in a similar manner. More specifically, the RX PTM-TC muststore a packet before passing it to the higher layer for a time equal tothe round trip delay from when a retransmission message is transmittedto when the retransmitted packet is received. This is equal to storagerequirements in octets (same as transmitter):Minimum RX memory (octets)=roundtripdelay*datarate,where the roundtripdelay is the time equal to the round trip from when aretransmission message is transmitted to when the retransmitted packetis received and the datarate is the data rate of the connection that istransferring the packets.

For ITU-T G.993.2 VDSL2 this can be computed using the VDSL2 profileparameters as:Minimum RX memory (octets)=(DS+US Interleaving Delay in octets)+(US+DSalpha/beta delay without interleaving)*(Bidirectional Net data rate)=MAXDLEYOCTET+(4 ms)*MBDC,where MAX DELAYOCTET and MBDC are as specified in the ITU-T G.993.2VDSL2 profiles.

TABLE 1 Minimum TX or RX memory requirements for VDSL2 VDSL2 PROFILE 8a,8b, 8c, 8d 12a, 12b 17a 30a TX or RX memory 90,536 99,536 123,304231,072 requirements (octets) = MAXDLEYOCTET + .002 MBDCThe estimates in Table 1 assume that all the entire MAX DELAYOCTET andMBDC are used for the transfer of the packet stream, i.e., the reversechannel has a very low data rate and no interleaving.

Some xDSL standards specify minimum storage, i.e., memory, requirementsfor interleaving of RS codewords. Interleaving with RS coding is aneffective way of correcting channel errors due to, for example, impulsenoise. For example, VDSL2 requires support of an aggregate bidirectionalinterleaver and de-interleaver memory of 65 Kbytes for the 8a VDSL2profile. This corresponds to storage requirement of approximately 32Kbytes in a single transceiver.

Sharing of Memory Between the Retransmission Function and One or More ofthe Interleaving/Deinterleaving/RS Coding/RS Decoding Functions

From Table 1, it is apparent that the memory requirements to support theretransmission protocol may be more than double the storage requirementsof a single transceiver. Additionally, the retransmission protocolprovides a different method for correcting channel errors due to, forexample, impulse noise.

Moreover, interleaving and RS coding methods and retransmissionprotocols provide different advantages with respect to error correctioncapabilities, latency, buffering requirements, and the like. Forexample, under certain configuration and noise conditions theinterleaving/RS coding provides error correction/coding gain with lessdelay and overhead than the retransmission protocol (for packets thatcan be retransmitted). While under other conditions the retransmissionprotocol will provide better error correction with less delay andoverhead than the interleaving/RS coding.

In some cases, a first portion of the memory can be used for onefunction and a second portion of the memory for some other function. Forexample, if the configuration and noise conditions are such that theinterleaving/RS coding would not provide good error correction/codinggain, then all the available memory could be used for the retransmissionfunction and none allocated to the interleaving/deinterleaving/RScoding/RS decoding functionality, e.g., the interleaving/deinterleavingcould be disabled.

Likewise, if the configuration and noise conditions are such that theretransmission protocol would not provide good error correction/codinggain, then all the available memory could be used for theinterleaving/deinterleaving/RS coding/RS decoding functionality and nomemory would be used for the retransmission function, e.g., theretransmission function would be disabled.

Alternatively, or addition, both methods could be used because both havetheir advantages, with the system, e.g., the memory management module370, being able to dynamically allocate a first portion of the memory250/350 to the interleaving/deinterleaving/RS coding/RS decodingfunctionality and a second portion of the memory to the retransmissionfunctionality. For example, 40% of the memory could be allocated to theinterleaving/deinterleaving/RS coding/RS decoding functionality with theremaining 60% allocated to the retransmission of functionality. However,it should be appreciated, that in general, the memory can be divided,i.e., shared, in any manner.

The sharing of memory between the retransmission function and theinterleaving/deinterleaving/RS coding/RS decoding functions is notrestricted to retransmission protocols described in other embodimentsthat utilize QOS metrics to determine which packets should beretransmitted. In other words, the sharing of memory between theretransmission function and the interleaving/deinterleaving/RS coding/RSdecoding functions can be utilized for retransmission systems where allerrored packets are retransmitted, i.e., there is no QOS identifier inthe retransmission protocol. For example, the FEC/interleaving could beused to meet the INP min requirement specifically targeting the impulsenoise that occurs frequently (e.g., on the order of minutes or seconds)but is short in duration and can therefore be corrected by theFEC/interleaving. For example, the retransmission protocol can be usedto correct infrequent errors (on the order of hours) that are long induration and would not be correctable by the FEC/interleaving. Asanother example, the FEC/interleaving function may be used incombination with the retransmission function because it is well knownthat FEC with minimal interleaving provides a 1 dB to 3 dB coding gainwhen used with a trellis code (as is often the case in xDSL systems).This means that even when the majority of the shared memory is allocatedto a retransmission function to address channel noise (such as impulsenoise), a smaller amount of memory may be allocated to theFEC/interleaving function for the coding gain advantage.

Associated with the ability to allocate or partition memory between oneor more of the interleaving/deinterleaving/RS coding/RS decodingfunctionality and retransmission functionality, is the ability toexchange information between transceivers on how to establish thisallocation. For example, the transmitting modem may send a message tothe receiving modem indicating how much of the available memory is to beallocated to one or more of the interleaving/deinterleaving/RS coding/RSdecoding functionality and how much memory is to be allocated to theretransmission functionality. For example, if the receiving modemcontains 100 kBytes of available memory, the transmitting modem couldsend a message to the receiving modem indicating that 25 kBytes shouldbe allocated to RS coding functionality and 75 kBytes should beallocated to the retransmission functionality. Since the receiving modemgenerally determines the interleaving/RS coding parameters that areused, the receiving modem could use this information to selectparameters, e.g., interleaver depth and codeword size, that would resultin an interleaving memory requirement that is no more than the amountindicated in the message.

Alternatively, or addition, the receiving modem can send a message tothe transmitting modem indicating how much of the available memory is tobe allocated to one or more of the interleaving/deinterleaving/RScoding/RS decoding functionality, and how much memory should beallocated to the retransmission functionality.

Sharing of Memory Between a Retransmission Function with Identificationof Low-PER and/or Low-Latency Packets and One or More ofInterleaving/Deinterleaving/RS Coding/RS Decoding Functions.

A way of reducing the total memory requirement of a transceiver thatsupports the retransmission functionality with the identification of thelow-PER and/or the low-latency packets is to define a limit, such as amaximum value, for the data rate of the low-PER packet stream, i.e., thepackets requiring retransmission to meet a specific PER requirement. Forexample, if the total date rate is 50 Mbps, and the roundtrip delay is10 ms, the minimum TX or RX memory requirement is50,000,000*0.01/8=62500 bytes if the retransmission function mustsupport the case where all the transmitted packet (all 50 Mbps) arelow-PER packets. If however, only a portion of the 50 Mbps data rate isallocated to the low-PER packet stream (e.g. 30 Mbps), whereas theremainder of the data rate is allocated to the low-latency packet stream(e.g. 20 Mbps), the minimum TX or RX memory requirement would be30,000,000*0.01/8=37500 bytes (assuming a roundtrip delay of 10 ms). Inthis case, the transmitting modem (or receiving modem) may send amessage to the receiving modem (or transmitting modem) that indicatesthe maximum data rate of the packet traffic that will be used in theretransmission function. Using the example above, the transmitting modem(or receiving modem) would send a message indicating that the low-PERtraffic will not exceed 30 Mbps, in which case the receiving modem (ortransmitting modem) will allocate memory to the retransmissionfunctionality and the interleaving/RS coding (or deinterleaving/RSdecoding) functionality accordingly.

One exemplary advantage of indicating the low-PER and low-latencypackets as part of the retransmission protocol is that it provides aDDR-like functionality without the overhead of dynamically re-allocatinglatency paths. For example, when a video application is turned off (lesslow-PER packets on the connection), the data application data rate canbe increased (more low-latency packets on the connection) without anychanges in the transmission parameters.

The retransmission protocol can also be used with or without underlyingFEC/interleaving (or deinterleaving). An exemplary approach is to usethe FEC/interleaving to meet the INP min requirement specificallytargeting the impulse noise that occurs frequently, e.g., on the orderof minutes or seconds. The retransmission protocol can be used tocorrect infrequent errors (on the order of hours) that will onlytypically be a problem for very-low PER applications, such as video.

When a retransmission protocol is combined with underlyingFEC/interleaving (or deinterleaving), the retransmission protocollatency will grow in proportion to the additional FEC/interleavingdelay. This is due to the fact that the required receiver bufferingcorresponds approximately to the round-trip delay time of packettransmission and message acknowledgment.

As an example of utilizing the retransmission protocol that identifiesone or more of low-PER and low-latency packets with underlyingFEC/Interleaving (or deinterleaving), the FEC/interleaving is used toachieve the INP min requirements within the latency constraint and theretransmission function is used to provide another layer of errorcorrection. The low-PER packets are passed through both theretransmission function and the FEC/interleaver and, as a result, a verylow PER is achieved. The low-latency packets are passed through theFEC/Interleaver but not passed through the retransmission function.Since low-latency packets are passed through the FEC/interleaver, theywill meet the INP min and Max Delay requirements without incurring theextra delay from the retransmission protocol.

Example configuration parameters:

-   -   DS Data rate=25 Mbps, INP min=2, Max DelayDS=8 ms

Example FEC/Interleaving parameters:

-   -   NFEC=128, R=16 which results in an interleaver memory of        approximately 14 Kbytes for INP=2 with 8 ms of delay.

Retransmission protocol:

If we assume the US latency is 2 ms, the retransmission protocol willadd a minimum of 8+2=10 ms of latency. This means that the total DSlatency (FEC/interleaving+Retransmission) will be approximately 8+10=18ms.

Memory requirements:

The memory requirements for the retransmission protocol can becalculated as: (10 ms)×(25 Mbps)/8=31 Kbytes. Therefore the transmitterand receiver will both need a total memory of (31+14)=45 Kbytes for theretransmission protocol and FEC/Interleaving function.

Low-PER packets:

Latency=18 ms. The PER is very low because INP min=2 (fromFEC/interleaving) is combined with the error correction of theretransmission function.

Low-Latency packets:

Latency=8 ms. INP=2 from FEC/interleaving. No additional delay due toretransmission function.

Although this invention describes the retransmission being done as partof the PTM-TC, it could also be done inside other layer(s) of the xDSLtransceiver, such as the PMD or the PMS-TC. Alternatively, it couldperformed at a layer(s) above the PTM-TC, for example, in a new layerbetween the PTM-TC and the next higher layer, or in general any layerabove the physical layer, e.g., layer 1, 2, 3, 4 or 5.

In this invention, the term “transmitter” generally refers to thetransceiver that transmits the packets. Likewise the term “receiver”generally refers to the transceiver that receives the packets. Thereforethe “transmitter” also receives the ACK/NAK messages and the “receiver”also transmits the ACK/NAK messages.

FIG. 2 outlines an exemplary method of operation of a transmitting modemutilizing the retransmission protocol. In particular, control begins instep S100 and continues to step S110. In step S110, a packet is receivedfrom a higher layer. Then, in step S120, a decision is made as towhether the received packet is a retransmitted type packet. If thepacket is not a retransmitted type packet, such as a low-latency packet,control jumps to step S125 where the packet is optionally updated (asdiscussed above) with control continuing to step S130 where the packetis forwarded to the receiver. Control then continues to step S140 wherethe control sequence ends.

If the packet is a retransmitted type packet, such as a low-PER packet,control continues to step S150. In step S150, the packet can be updatedwith information such as a sequence identifier or other information thatallows a receiver to be able to determine which packet (or packets) needto be retransmitted. Next, in step S160, the updated packet is stored inthe retransmission buffer. Then, in step S170, the packet is forwardedto the receiver. Control then continues to step S180.

In step S180, a determination is made whether the packet needs to beretransmitted. If the packet needs to be retransmitted, control jumpsback to step S170. Otherwise, control continues to step S190.

In step S190, the packet is deleted from the retransmission buffer.Control then continues to step S140 where the control sequence ends.

FIG. 3 outlines an exemplary method of operation of a receiving modemutilizing the retransmission protocol. In particular, control begins instep S200 and continues to step S210. In step S210, a packet is receivedfrom the transmitter. Next, in step S220, a determination is madewhether the packet has been identified as a retransmitted type packet.If the packet has not been identified as a retransmittable type packet,control jumps to step S230.

In step S230, the packet is forwarded to a higher layer. Control thencontinues to step S240 where the control sequence ends.

Alternatively, if the received packet is a retransmittable type packet,the packet is stored in the retransmission buffer in step S260. Next, instep S270, the integrity of the packet can be checked, for exampleutilizing a CRC. Then, in step S280, a determination is made whether thepacket needs retransmission. If the packet needs retransmission, controlcontinues to step S290 where the retransmitted packet is obtained, forexample, based on the sending of a message(s), one or the othertransceiver determining a packet is missing, or the like, as discussedabove, with control continuing back to step S270 for an integrity check.

If the packet does not need retransmission, control continues to stepS295 where the packet is forwarded to a higher layer and deleted fromthe retransmission buffer. Control then continues to step S240 where thecontrol sequence ends.

FIG. 4 outlines an exemplary memory allocation method for sharing memorybetween the retransmission function and one or more of theinterleaving/deinterleaving functionality and coding functionality. Inparticular, control begins in step S300 and continues to step S305. Instep S305, a message is sent/received specifying the available memory.Typically, the receiver will send a message to the transmitterspecifying the available memory, but the transmitter could also send amessage to the receiver. Next, in step S310, a determination is made asto how the memory should be allocated. As discussed, this allocation canbe based on one or more of error correction capability, latency,buffering requirements, SNR, impulse noise, or in general, anycommunication parameter. Next, in step S320, the memory allocation iscommunicated to another transceiver. Then, in step S330, a determinationcan made as to whether the allocation is compatible. If the receivedallocation is not compatible, control continues to step S360 whereinanother allocation can be requested, with control continuing back tostep S320.

Alternatively, if the allocation is compatible, in step S340 the memoryis allocated based on the received allocation. Control then continues tostep S350 where the control sequence ends.

FIG. 5 illustrates an exemplary memory sharing methodology for use witha retransmission function and one or more of interleaving/deinterleavingfunctionality, RS coding/decoding functionality. In particular, controlbegins in step S400 and continues to step S410. In step S410, the memoryallocation is received from, for example, a memory management modulethat may be located in the same transceiver, or at a remote transceiver.Next, in step S420, the memory sharing configuration is established andthen, in step S430, the memory is shared between a retransmissionfunction and one or more of the interleaving/deinterleavingfunctionality, RS coding/decoding functionality. Control then continuesto step S440.

In step S440, a determination is made whether the memory sharingconfiguration should be changed. For example, the memory sharingconfiguration can be dynamically changed based on changes in thecommunication channel or data type(s) being sent on the communicationchannel. More specifically, for example, if the communications channelwas not performing well, e.g., an increase in bit errors, it may beadvantageous to increase the retransmission capability while decreasingthe FEC/interleaving capability or vise-versa, which could have animpact on how the memory sharing should be configured.

If the memory sharing configuration should be changed, control continuesto step S450 where another allocation can be requested, with controlcontinuing back to step S410. Otherwise, control continues to step S460where the control sequence ends.

While the above-described flowcharts have been discussed in relation toa particular sequence of events, it should be appreciated that changesto this sequence can occur without materially effecting the operation ofthe invention. Additionally, the exact sequence of events need not occuras set forth in the exemplary embodiments, but rather the steps can beperformed by one or the other transceiver in the communication systemprovided both transceivers are aware of the technique being used forinitialization. Additionally, the exemplary techniques illustratedherein are not limited to the specifically illustrated embodiments butcan also be utilized with the other exemplary embodiments and eachdescribed feature is individually and separately claimable.

The above-described system can be implemented on wired and/or wirelesstelecommunications devices, such a modem, a multicarrier modem, a DSLmodem, an ADSL modem, an xDSL modem, a VDSL modem, a linecard, testequipment, a multicarrier transceiver, a wired and/or wirelesswide/local area network system, a satellite communication system,network-based communication systems, such as an IP, Ethernet or ATMsystem, a modem equipped with diagnostic capabilities, or the like, oron a separate programmed general purpose computer having acommunications device or in conjunction with any of the followingcommunications protocols: CDSL, ADSL2, ADSL2+, VDSL1, VDSL2, HDSL, DSLLite, IDSL, RADSL, SDSL, UDSL or the like.

Additionally, the systems, methods and protocols of this invention canbe implemented on a special purpose computer, a programmedmicroprocessor or microcontroller and peripheral integrated circuitelement(s), an ASIC or other integrated circuit, a digital signalprocessor, a hard-wired electronic or logic circuit such as discreteelement circuit, a programmable logic device such as PLD, PLA, FPGA,PAL, a modem, a transmitter/receiver, any comparable means, or the like.In general, any device capable of implementing a state machine that isin turn capable of implementing the methodology illustrated herein canbe used to implement the various communication methods, protocols andtechniques according to this invention.

Furthermore, the disclosed methods may be readily implemented insoftware using object or object-oriented software developmentenvironments that provide portable source code that can be used on avariety of computer or workstation platforms. Alternatively, thedisclosed system may be implemented partially or fully in hardware usingstandard logic circuits or VLSI design. Whether software or hardware isused to implement the systems in accordance with this invention isdependent on the speed and/or efficiency requirements of the system, theparticular function, and the particular software or hardware systems ormicroprocessor or microcomputer systems being utilized. Thecommunication systems, methods and protocols illustrated herein can bereadily implemented in hardware and/or software using any known or laterdeveloped systems or structures, devices and/or software by those ofordinary skill in the applicable art from the functional descriptionprovided herein and with a general basic knowledge of the computer andtelecommunications arts.

Moreover, the disclosed methods may be readily implemented in softwarethat can be stored on a storage medium, executed on programmedgeneral-purpose computer with the cooperation of a controller andmemory, a special purpose computer, a microprocessor, or the like. Inthese instances, the systems and methods of this invention can beimplemented as program embedded on personal computer such as an applet,JAVA® or CGI script, as a resource residing on a server or computerworkstation, as a routine embedded in a dedicated communication systemor system component, or the like. The system can also be implemented byphysically incorporating the system and/or method into a software and/orhardware system, such as the hardware and software systems of acommunications transceiver.

It is therefore apparent that there has been provided, in accordancewith the present invention, systems and methods for packetretransmission and memory sharing. While this invention has beendescribed in conjunction with a number of embodiments, it is evidentthat many alternatives, modifications and variations would be or areapparent to those of ordinary skill in the applicable arts. Accordingly,it is intended to embrace all such alternatives, modifications,equivalents and variations that are within the spirit and scope of thisinvention.

The invention claimed is:
 1. A method of packet retransmission comprising: transmitting or receiving, by a transceiver, a plurality of packets; determining, by a processor, a memory allocation between a retransmission function and one or more of an interleaving and a deinterleaving function, wherein the memory allocation is based on at least one communication parameter; and identifying, by the processor, at least one packet of the plurality of packets as a packet that should not be retransmitted.
 2. A method, in a transceiver, comprising: determining a memory allocation between a retransmission function and one or more of an interleaving and a deinterleaving function, wherein the memory allocation is based on at least one communication parameter; transmitting or receiving a first message indicating the memory allocation; changing the memory allocation based on changes in a communication channel; and transmitting or receiving a second message indicating the changed memory allocation.
 3. The method of claim 2, wherein the communication parameter is a Signal to Noise Ratio (SNR), measured on at least one subcarrier.
 4. The method of claim 2, wherein the communication parameter is an error correction capability.
 5. The method of claim 2, wherein the communication parameter is a latency requirement.
 6. The method of claim 2, wherein the communication parameter is a data rate.
 7. The method of claim 2, wherein the changes in a communication channel comprises an increase in bit errors.
 8. The method of claim 2, further comprising storing a packet in the retransmission buffer and retransmitting the packet based on a received message.
 9. A device comprising: a transceiver operable to determine a memory allocation between a retransmission function and one or more of an interleaving and a deinterleaving function, wherein the memory allocation is based on at least one communication parameter; a transmitter operable to transmit or a receiver operable to receive a first message indicating the memory allocation; the transceiver further operable to change the memory allocation based on changes in a communication channel; and the transmitter further operable to transmit or a receiver further operable to receive a second message indicating the changed memory allocation.
 10. The device of claim 9, wherein the communication parameter is a Signal to Noise Ratio, SNR, measured on at least one subcarrier.
 11. The device of claim 9, wherein the communication parameter is an error correction capability.
 12. The device of claim 9, wherein the communication parameter is a latency requirement.
 13. The device of claim 9, wherein the communication parameter is a data rate.
 14. The device of claim 9, wherein the changes in a communication channel comprises an increase in bit errors.
 15. The device of claim 9, wherein the transmitter is further operable to storing a packet in the retransmission buffer and retransmit the packet based on a message received by the receiver.
 16. A transceiver comprising: means for determining a memory allocation between a retransmission function and one or more of an interleaving and a deinterleaving function, wherein the memory allocation is based on at least one communication parameter; means for transmitting or receiving a first message indicating the memory allocation; means for changing the memory allocation based on changes in a communication channel; and means for transmitting or receiving a second message indicating the changed memory allocation.
 17. The transceiver of claim 16, wherein the communication parameter is a Signal to Noise Ratio, SNR, measured on at least one subcarrier.
 18. The transceiver of claim 16, wherein the communication parameter is an error correction capability.
 19. The transceiver of claim 16, wherein the communication parameter is a latency requirement.
 20. The transceiver of claim 16, wherein the communication parameter is a data rate.
 21. The transceiver of claim 16, wherein the changes in a communication channel comprises an increase in bit errors.
 22. The transceiver of claim 16, further comprising means for storing a packet in the retransmission buffer and means for retransmitting the packet based on a received message. 